home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er 1989 March
/
64er_Magazin_89-03_1989_Markt__Technik_de_Side_A.d64
/
demo5 - bw5_1
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
2KB
|
53 lines
5 kx=4.8:ky=5.76:mn=2.5
6 line=49152:hardcopy=49155:clear=49158
7 sys clear
10 deffnarc(x)=-atn(x/sqr(1-x^2))+(NULL)/2
20 bw=180/(NULL)
30 cw=fnarc((4^2+5^2-3^2)/(2*5*4))*bw
50 dim x1(50),y1(50),x2(50),y2(50),w(50),ab(50)
60 sys line,1,192*kx-1,113*ky,192*kx-1,158*ky
70 sys line,1,150*kx,113*ky,150*kx,158*ky
80 sys line,1,192*kx-1,113*ky,150*kx,113*ky
90 sys line,1,192*kx-1,158*ky,150*kx,158*ky
100 a=1
110 x1(1)=113:y1(1)=50
120 x2(1)=158:y2(1)=50
130 w(1)=90-cw:ab(1)=1
200 rem berechnen der dreiecksseiten
210 sa=sqr( (x1(a)-x2(a))^2+(y1(a)-y2(a))^2 )
220 sb=sa/5 *4
230 sc=sa/5 *3
250 rem berechnen des 3. punktes des dreiecks
260 dx=cos( w(a)/bw ) * sc
270 dy=sin( w(a)/bw ) * sc
280 x3=x1(a)+dx
290 y3=y1(a)+dy
300 sys line,1,(200-y1(a))*kx-1,x1(a)*ky,(200-y3)*kx-1,x3*ky
310 sys line,1,(200-y2(a))*kx-1,x2(a)*ky,(200-y3)*kx-1,x3*ky
400 rem quadrate ueber katheten zeichnen
410 q1=x1(a)-dy : q2=y1(a)+dx
420 q3=x3-dy : q4=y3+dx
425 :
430 x1(a+1)=q1 : y1(a+1)=q2
440 x2(a+1)=q3 : y2(a+1)=q4
445 w(a+1)=w(a)+ (90-cw):ab(a+1)=ab(a)+1
450 sys line,1,(200-y3)*kx-1,x3*ky,(200-q4)*kx-1,q3*ky
460 sys line,1,(200-q4)*kx-1,q3*ky,(200-q2)*kx-1,q1*ky
470 sys line,1,(200-q2)*kx-1,q1*ky,(200-y1(a))*kx-1,x1(a)*ky
500 :
510 q1=x3+(y3-y2(a)) : q2=y3+(x2(a)-x3)
520 q3=x2(a)+(y3-y2(a)) : q4=y2(a)+(x2(a)-x3)
525 :
530 x1(a)=q1 : y1(a)=q2
540 remx2(a)=q3 : y2(a)=q4
550 w(a)=w(a)- cw:ab(a)=ab(a)+1
560 sys line,1,(200-y3)*kx-1,x3*ky,(200-q2)*kx,q1*ky
570 sys line,1,(200-q2)*kx,q1*ky,(200-q4)*kx-1,q3*ky
580 sys line,1,(200-q4)*kx-1,q3*ky,(200-y2(a))*kx-1,x2(a)*ky
590 x2(a)=q3 : y2(a)=q4
595 if sc<mn and a=1 then 1000
600 if sc<mn then a=a-1:goto 200
610 a=a+1:goto200
1000 rem
1010 sys hardcopy,1850